The modern computer system provides users with the ability to run a large variety of application programs. Such a computer system contains, as shown in FIG. 1, a computer 100 which has a central processing unit (CPU) 102, a memory 104 and an input/output (I/O) unit 106. The computer system also includes various peripheral devices, such as a keyboard 110, a mouse 115, a monitor 120 and a disk 130, all of which are connected to the computer 100 via the I/O unit 106. The computer system also contains an operating system which manages and executes the application programs. The operating system is stored in the memory 104 and executed by the CPU 102. The operating system controls the allocation and use of the central processing unit 102, the memory 104 and the peripheral devices.
An example of such an operating system is the MS-DOS.RTM. operating system, created by Microsoft Corporation. The MS-DOS operating system is widely used for controlling the operation of various personal computers. In addition to performing management of the computer system, the MS-DOS operating system also provides a number of "utilities". A utility is a computer program which performs, upon request by the user, a specific function, called herein a utility function, relating to the operating system's management and control of the computer system. For example, when a user of the MS-DOS operating system enters the command "DIR" at the MS-DOS user prompt, the operating system outputs to the display 120 a list of all files stored in a relevant directory on the disk 130 and the amount of memory used by each file.
A more recent example of an operating system is the Windows.TM. operating system by Microsoft Corporation. Technically speaking, the Windows system is implemented as an application running on top of the MS-DOS operating system. Once executing, however, the Windows system performs essentially as an operating system providing management and control of the computer system and completely controlling interaction between the computer system and the user. The Windows operating system provides its own set of utilities which are designed specifically for the Windows environment and which interface with the user in a fashion unique to the Windows operating system. For example, a user of the Windows operating system would obtain directory information similar to that provided by the MS-DOS "DIR" utility in a different fashion than the MS-DOS operating system. The user would, for example, use the well-known Windows "Graphical User Interface" to position the cursor on a displayed icon representing a set of file management functions and click the mouse 115 shown in FIG. 1 to display a viewport, which includes a directory listing that can be further manipulated by the user.
In many instances, the Windows and MS-DOS operating systems provide utilities which perform essentially the same utility functions. It is often desirable for an executing, or "active," operating system (such as the Windows operating system, while running on top of the MS-DOS operating system) to be able to perform a utility function performed by a utility typically provided by an "external" operating system (such as the MS-DOS operating system, while the Windows operating system is running). As explained, however, each operating system controls user interaction with the computer system in an entirely different way. Thus, in the past neither operating system has been able to take advantage of the utilities provided by the other operating system without having to surrender the user interface environment or applications executing on the active operating system.
Typically, then, when designers of the Windows operating system have wanted to include a utility function provided by the MS-DOS operating system, the only option has been to create an entirely new program executable by the Windows operating system. This option, although advantageous in providing familiar utilities to users of either operating system, is of only limited value. One problem is that roughly twice the storage space is required to store utilities that perform essentially the same utility function. Another problem is inconsistency. The designers of a utility for use by both operating systems must essentially write and test two separate programs, and a great deal of effort is thus required to ensure that each program performs the utility function in the same way. Further, a utility provided by one operating system may be corrected, updated or enhanced. In such a case, users of the other operating system will not obtain the benefit of this modification because it will execute a different program to perform the same utility function.